One of the challenges in computer graphics is modeling shapes as data format that can represent smooth curved surfaces. Computer graphics hardware naturally requires shapes to be decomposed into planar (flat) triangles. Resulting triangles need to be small enough that each triangles are no longer visible as planar.
Commonly used data formats to describe curved surfaces include subdivision surfaces, NURBS, and possibly Bezier rectangle patches. They use mesh of rectangles with additional parameters to describe the curved surface.
Use of rectangles as primitive for the mesh works well for objects that have box-like shapes using a mesh with even density. It allows the mesh to flows smoothly along the curves. But it becomes difficult with more complex overall topology, as well as uneven density of detail. For example, a human head is somewhat a ball-like shape, but while many features on the face like eyes, nose have higher density of detail compared to some parts like cheek and forehead that is relatively smooth. It is difficult to keep a even density and smooth flow of rectangles. Many tools resort to allowing use of irregular polygons such as triangles or pentagons to allow maintaining an even flow and accommodating for the difference in density of details. This requires artists to be highly trained in modeling using specific placement of mesh including adding irregular polygons.
Another challenge comes in the fact that the mesh requires specifying additional parameters such as control points or degree of subdivision. And in some cases, the vertices in the mesh may not actually represent point on the surface. This is also requires the artists to be trained in understanding the effect of these additional parameters on the final resulting curves, as the effect of their placement may not be very intuitive.
The aspects of modeling curves which requires highly trained artists also make it difficult to automate using computers. Allowing automation can improve productivity in modeling shapes, which can significantly reduce cost by reducing dependency on highly skilled artists. And it may also allow artists to be more productive by focusing on modeling shapes instead of working on the mesh to have smooth flow and even details, as well as manipulating unintuitive parameters for defining curved surfaces.
Bezier triangles have not been popularly adopted as primitive for constructing curved surfaces, although there has been some publications discussing its use.
A Bezier curve is a parametric curve used in computer graphics systems to define smooth curves. Degree of Bezier corresponds to complexity of curve that can be represented. Increased degree allows to represent more complex curves. Lower degree curve can always be represented by a higher degree. Converting the lower degree curve to higher degree curve is called degree elevation.
A quadratic Bezier curve has 3 control points, including the two end points of a curve segment (FIG. 1A). Cubic Bezier curve has four (FIG. 1B), and quartic Bezier curve has five (FIG. 1C). A straight line can be considered as a first degree, or linear, Bezier segment.
De Casteljau algorithm can be used to render the exact curve derived from the Bezier control points. A parameter t (0=<t=<1) is used for repeating linear interpolation between each control points until a single point is derived as described in FIG. 2.
The algorithm can be expanded to represent curved surface. A Bezier triangle can parametrically represent a triangular curved surface with three corner vertices, and control points, using barycentric coordinates. Degree elevation applies to Bezier triangles as well.
A quadratic Bezier triangle has six control points, including the three corner vertices. Corner vertices and one control point are along the side of the triangle, where each side of the quadratic Bezier triangle forms a quadratic Bezier curve (FIG. 3A). A cubic Bezier triangle has 10 control points, including the corner vertices. Corner vertices and two control points are along the side of the triangle, forming a cubic Bezier curve. One additional control point resides in the center (FIG. 3B). Quartic bezier triangle has 15 control points in addition to the three corner vertices. Corner vertices and three control points are along the side forming a quartic Bezier curve, and there are control points inside, each corresponding to a vertex (FIG. 3C). A planar triangle can be considered as zero degree Bezier triangle, where the barycentric coordinates directly represents the planar coordinates on the surface. (FIG. 3D)
For Bezier triangles, De Casteljau algorithm can be used with two parameters t (0=<t=<1), u (0=<t=<1), representing the barycentric coordinates. Point on the curved surface patch can be identified as described in FIG. 4A, FIG. 4B, FIG. 4C, FIG. 4D.
Once cubic Bezier curve is obtained for the boundary curves shared between adjacent patches, there is prior art method which allows generation of quartic Bezier triangle patch. This method assures that the resulting quartic Bezier triangle are continuous has positional and tangential continuity, making it a smooth and continuous curved surface.